L’algorithme proposé pour résoudre ce type de problème est l’algorithme de Dijkstra (ou Dijkstra-Moore).
Propriété
Déroulement de l‘algorithme de Dijkstra
On cherche le plus court chemin entre une origine
1. Initialisation. On fixe la marque de
adjacents à
adjacents, par
2. Marquage. On regarde tous les sommets de marque non fixée et on repère celui qui a la plus petite marque, que l’on fixe ; on note
3. Exploration. Pour chaque sommet
4. Décision. Si cette somme est inférieure à la marque de
5. Itération. On recommence à partir de l’étape
6. Fin de l’algorithme. Toutes les marques étant optimales, la marque fixée du sommet
Remarques
Pour une convergence plus rapide, on considère qu’on a déjà simplifié le graphe pondéré en « supprimant » tous les sommets qui sont de degré
D’un point de vue pratique, on peut placer les itérations dans un tableau, ce qui permet une relecture facile du chemin trouvé.
Le chemin trouvé n’est pas obligatoirement unique ; son poids est le plus faible mais il pourrait y avoir un autre chemin de même poids.
Si le graphe n’est pas connexe et qu’il n’existe pas de chaîne reliant les sommets pour lesquels on cherche le plus court chemin, au bout d’un temps fini l’algorithme n’explore plus de nouveaux sommets, il y a donc blocage.
Efficacité de cet algorithme : si le graphe est d’ordre
Source : https://lesmanuelslibres.region-academique-idf.fr
Télécharger le manuel : https://forge.apps.education.fr/drane-ile-de-france/les-manuels-libres/mathematiques-terminale-expert ou directement le fichier ZIP
Sous réserve des droits de propriété intellectuelle de tiers, les contenus de ce site sont proposés dans le cadre du droit Français sous licence CC BY-NC-SA 4.0